function outputImagePath = sftt(inputFilePath, outputImagePath)
% generate_spectrogram - 从 IQ 文件生成 STFT 幅度图并保存为图片
%
% 输入:
%   inputFilePath      - IQ 数据文件路径
%   outputImagePath    - 输出图像保存路径
%
% 输出:
%   outputImagePath    - 实际保存的图像路径

    % 采样率
    fs = 200e3;

    % 加载 IQ 数据
    IQ_data = readmatrix(inputFilePath); % Nx2 矩阵，第一列是 I，第二列是 Q

    % 构造复数信号
    I = IQ_data(:, 1);
    Q = IQ_data(:, 2);
    x_complex = complex(I, Q);

    % 去除直流分量（可选）
    x_complex = x_complex - mean(x_complex);

    % STFT 参数设置
    wlen = 512;
    hop = 128;
    noverlap = wlen - hop;
    nfft = 512;
    window = hann(wlen);

    % 计算 STFT
    [S, F, T] = stft(x_complex, fs, ...
        'Window', window, ...
        'OverlapLength', noverlap, ...
        'FFTLength', nfft);


    S1 = abs(S)';
    [sizeT, sizeF] = size(S1);
    SP = S1(:, sizeF/2:end);  % 取后半部分频率成分


    figure;
    imagesc(T, F, SP);
    shading interp;
    axis tight;
    colormap jet;
    colorbar('Ticks',[0; max(SP(:))], 'TickLabels',{'Low','High'});
    title('STFT Magnitude');

    % 设置坐标轴颜色和标签隐藏
    set(gca, 'xtick', [], 'ytick', [], 'xcolor', 'k', 'ycolor', 'k');
    set(gca, 'looseInset', [0 0 0 0]);
    set(gca, 'Position', [0 0 1 1]);

    % 设置图像大小为 257x125 像素，分辨率 100 DPI
    dpi = 100;
    widthInches = 513 / dpi;
    heightInches = 249 / dpi;

    set(gcf, 'PaperUnits', 'inches');
    set(gcf, 'PaperPositionMode', 'manual');
    set(gcf, 'PaperPosition', [0 0 widthInches heightInches]);

    % 保存图像
    print(gcf, '-djpeg', '-r100', outputImagePath);

    % 关闭图像窗口
    close(gcf);

end